package com.party.core.service.member;

import com.party.common.paging.DataParam;
import com.party.common.paging.Page;
import com.party.core.model.member.MemberMerchantDetail;
import com.party.core.model.member.MemberMerchantDetailQuery;
import com.party.core.model.member.MemberMerchantDetailWithMember;
import com.party.core.service.IBaseService;

import java.util.Date;
import java.util.List;

/**
 * 合作商统计数据详情服务接口
 * Created by wei.li.
 *
 * @date 2017/12/12 0012
 * @time 9:42
 */
public interface IMemberMerchantDetailService extends IBaseService<MemberMerchantDetail> {


    /**
     * 根据会员和时间获取
     * @param memberId 会员编号
     * @param date 时间
     * @return 统计详情
     */
    MemberMerchantDetail get(String memberId, Date date);

    /**
     * 获取或者设置
     * @param memberId 会员编号
     * @param date 时间
     * @return 统计详情
     */
    MemberMerchantDetail getSet(String memberId, Date date);

    /**
     * 统计
     * @param memberMerchantDetailQuery 统计参数
     * @return 统计列表
     */
    List<MemberMerchantDetailWithMember> sumList(MemberMerchantDetailQuery memberMerchantDetailQuery, DataParam dataParam, Page page);

    /**
     * 统计一个机构
     * @param memberMerchantDetailQuery 统计参数
     * @return 统计数据
     */
    MemberMerchantDetailWithMember sum(MemberMerchantDetailQuery memberMerchantDetailQuery);


    /**
     * 统计机构数据
     * @param memberMerchantDetailQuery 统计参数
     * @return 统计数据
     */
    MemberMerchantDetail allSum(MemberMerchantDetailQuery memberMerchantDetailQuery);

    /**
     * 根据条件查询
     * @param memberMerchantDetailQuery 查询参数
     * @return 统计列表
     */
    List<MemberMerchantDetail> queryList(MemberMerchantDetailQuery memberMerchantDetailQuery);


    /**
     * 根据条件查询所有
     * @param memberMerchantDetailQuery 查询参数
     * @return 统计列表
     */
    List<MemberMerchantDetail> allQueryList(MemberMerchantDetailQuery memberMerchantDetailQuery);

    /**
     * 清除多少天前的历史数据
     * @param num 多少天前
     * @return 删除结果(true/false)
     */
    boolean deleteHistory(Integer num);

    /**
     * 查询所有活动、众筹详情的浏览数量
     * @return  浏览数量
     * create by huangwuming
     *  @date 2018/3/5
     */
    List<MemberMerchantDetail> getAllViewNum( String createStart);

    /**
     * 批量更新所有活动、众筹详情的浏览数量
     * @return  更新结果(true/false)
     * create by huangwuming
     *  @date 2018/3/5
     */
    boolean batchUpdate( MemberMerchantDetail memberMerchantDetail);




}
